package com.glorystone.ins.vo;
import java.math.BigDecimal;
import java.time.LocalDate;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.glorystone.ins.beanUtils.annotation.ExcelField;
import com.glorystone.ins.domain.CapitalRecord;
import com.glorystone.ins.domain.CustomLocalDateSerializer;
import jdk.nashorn.internal.objects.annotations.Property;
import lombok.Data;
import com.glorystone.ins.domain.Channel;
import com.glorystone.ins.domain.Insurer;
import org.springframework.format.annotation.DateTimeFormat;

public @Data class OrderViewVO {
	private Long tid;   //需要
    @ExcelField(title = "保单号", align = 2, sort = 25,completeChannel = "channel")
    private String ordNum;//保单号    需要
    @ExcelField(title = "订单编号", align = 2, sort = 25,completeChannel = "ins")
    private String ordCode;//订单编号    需要
    private Long channelId;
    private Long insyrerId;
    private Long productId;
    @ExcelField(title = "被保险人",type = 1, align = 2, sort = 25)
    private String insurant;//被保险人  需要
    @ExcelField(title = "被保险人证件号",type = 1, align = 2, sort = 25)
    private String orgIdCode;//被保险人证件号
    private String applicant;//投保人    需要
    @ExcelField(title = "车主姓名",type = 1, align = 2, sort = 25)
    private String carOwner;//车主
    @ExcelField(title = "联系电话",type = 1, align = 2, sort = 25)
    private String phone;//联系电话    需要
    @ExcelField(title = "车牌号",type = 1, align = 2, sort = 25)
    private String plateNum;//车牌号 需要
    private Integer status;//状态 需要
    @ExcelField(title = "状态", align = 2, sort = 25,completeChannel = "ins")
    private String strStatus;
    @ExcelField(title = "车架号", align = 2, sort = 25)
    private String frameNumber;//车架号
    private Integer typeInsurance;//  险种
    @ExcelField(title = "险种",type = 1, align = 2, sort = 25)
    private String typeInsurances;
    private Integer typeInsuranceTweName;//险种名称
    @ExcelField(title = "商业保险费（元）",type = 1, align = 2, sort = 25)
    private BigDecimal mercialPremium;//商业保险费
    @ExcelField(title = "交强险保费（元）",type = 1, align = 2, sort = 25)
    private BigDecimal pulsoryPremium;//交强保险费
    @ExcelField(title = "车船税",type = 1, align = 2, sort = 25)
    private BigDecimal vechcleVesselTax;//车船税
    @ExcelField(title = "全保费",type = 1, align = 2, sort = 25)
    private BigDecimal allPremium;//全保费
    private Integer paySubject;//付款主题
    @ExcelField(title = "付款主体",type = 1, align = 2, sort = 25)
    private String paySubjectName;//付款主题名称
    private Long createBy;//下单人
    @ExcelField(title = "下单日期", align = 2,type = 1,sort = 25)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate createDate;//下单时间
    @ExcelField(title = "付款日期",align = 2,sort = 25,completeChannel = "channel")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate paydate;
    private Insurer insyrerCompany;//保险公司信息
    @ExcelField(title = "保险公司", align = 2,type = 1,sort = 25)
    private String insyrerCompanyName;
    private Channel channel;//渠道信息
    @ExcelField(title = "渠道",type = 1, align = 2, sort = 25)
    private String channelName;
    @ExcelField(title = "渠道返点", align = 2, sort = 25,completeChannel = "channel")
    private BigDecimal channelRebate;//渠道返点
    private CapitalRecord capitalRecord;
    @ExcelField(title = "返佣费（元）", align = 2, sort = 25,complete = "ok",completeChannel = "channel")
    private BigDecimal mustRebateAmt;//应收返返点（返佣费）

    private LocalDate insureStartDate;//起保日期

    private Integer typeInsurance2;

    private Integer recStatus;
}
